<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        let a = new Promise((resolve,reject)=>{
            resolve('成功')
        })
        console.log(a);

        // 1.0 没有返回值
        let b = a.then(res=>{
        })
        console.log(b);

        // 2.0 有返回值
        let c = a.then(res=>{
            return 'hello'
        })
        console.log(c);

        // 3.0 返还一个promise对象
        let d = a.then(res=>{
            return new Promise((resolve,reject)=>{
                resolve('嵌套的对象')
            })
        })
        console.log(d);

        // 4.0 then 抛出错误
        // 会返还一个 rejected 状态的 promise对象，promiseResult 值就是报错内容
        let e = a.then(res=>{
            throw Error('错误')
        })
        console.log(e);

        // 每个promise对象都会有一个then方法.then 是可以无限链式调用
        let p = a.then(res=>{
            return 123
        })
        console.log(p); // promise 对象

        let p1 = p.then(res=>{
            console.log(res); // 123
        })

        let p2 = p1.then(res=>{
            console.log(res); // undefined  (上一个没有return值)
        })
    </script>
</body>
</html>